As the web sites become increasingly popular, they get exceedingly more complex and contain more data using various data sources. Sophisticated file hierarchies, abundant information contents, and numerous links to other sites and databases are among the common features that are used in the design of new web sites. Many of these web sites have to retrieve data from other web sites and a variety of different data sources with different interfaces. As a result, connecting to different data sources and allowing transfer of data between them have become tedious and time-consuming tasks that generally require software expertise to accomplish. For example, a person who wants to generate a report that requires data from different data sources has to know and understand every data source containing the requested data and has to have knowledge of HTML and/or Structured Query Language (SQL) programming languages to be able to interface with these data sources.
Furthermore, a large number of modern computer software applications, especially those built for business purposes take advantage of relational database to store persistent data. In a process of developing computer applications, one of the major issues is assuring an appropriate level of quality. Mission critical applications require thorough testing prior to deployment. Applications entailing less reliability requirements can be built and deployed with less thorough testing. However, this approach causes more defects to remain undetected until an end user of the application software discovers them. In a typical situation, the end user informs the software vendor of the discovered defective. Then, the software vendor, after some additional verification, provides patches to fix the software defect. However, in database oriented applications software defects discovered by end users may cause serious side effects and fixing the defects may be several times more costly then fixing the software prior to deployment. Incorrect records of business events in a database affect reporting for tax purposes, business decisions, etc. More importantly, subtle defects which affect only database records may stay hidden for a long time. In this situation, repairing the database records is costly, time and resource consuming, and may sometimes be even impossible.